package com.example.yingpianguangli.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data // 提供所有的getter和setter, equals, canEqual, hashCode 和 toString 方法
@NoArgsConstructor // 提供无参构造函数
@AllArgsConstructor // 提供全参构造函数
/**
 * SysMovie类代表系统中的电影实体
 * 它包含了与电影相关的一系列属性，如电影ID、名称、时长等
 * 该类实现了Serializable接口，以支持对象的序列化和反序列化
 */
public class SysMovie implements Serializable {
    /**
     * 序列化ID，用于标识类的版本
     */
    private static final long serialVersionUID = 1L;

    /**
     * 电影ID，唯一标识一部电影
     */
    private Long movieId;

    /**
     * 电影名称
     * 使用NotBlank注解确保在更新或创建电影时该字段不能为空
     */
    @NotBlank(message = "电影名称不能为空")
    private String movieName;

    /**
     * 电影时长，以分钟为单位
     */
    private Integer movieLength;

    /**
     * 电影海报的URL或路径
     */
    private String moviePoster;

    /**
     * 电影制作地区
     */
    private String movieArea;

    /**
     * 上映日期
     */
    private Date releaseDate;

    /**
     * 电影总票房收入
     */
    private Double movieBoxOffice;

    /**
     * 电影简介，简要介绍电影内容
     */
    private String movieIntroduction;

    /**
     * 电影图集，包含一系列电影相关图片的URL或路径
     */
    private String moviePictures;

    /**
     * 电影的类别列表，表示该电影所属的多个类别
     */
    private List<SysMovieCategory> movieCategoryList;
}

